#include "Enum.h"
#include "SkillTypeBaseInfo.h"
#include "SkillTypeInfo.h"


CSkillTypeBaseInfo::CSkillTypeBaseInfo()
{
}


CSkillTypeBaseInfo::~CSkillTypeBaseInfo()
{
}


void CSkillTypeBaseInfo::AddSkillType(CSkillTypeInfo* skinfo)
{
	skinfo->Init();
	m_skillTypeInfo[skinfo->CSkillTypeInfo::GetSKID()] = skinfo;
}


#define ADDSKILL(X)  { m_skillName[#X] = SKID_##X; CSkillTypeInfo* skinfo = new SK_##X(); this->CSkillTypeBaseInfo::AddSkillType(skinfo); }
#define ADDSKILL2(X) { m_skillName[#X] = SKID_##X; CSkillTypeInfo* skinfo = new SK_##X(); skinfo->CSkillTypeInfo::SetSKID(SKID_##X); this->CSkillTypeBaseInfo::AddSkillType(skinfo); }


hook_func<void (__stdcall *)()> CSkillTypeBaseInfo__SetSKTyepBase(EXEPATH(), "CSkillTypeBaseInfo::SetSKTyepBase");
void CSkillTypeBaseInfo::SetSKTyepBase()
{
	return (CSkillTypeBaseInfo__SetSKTyepBase)();
	//TODO
/*
	ADDSKILL(NV_BASIC);
	ADDSKILL(NV_FIRSTAID);
	ADDSKILL(NV_TRICKDEAD);
	ADDSKILL(SM_SWORD);
	ADDSKILL(SM_TWOHAND);
	ADDSKILL(SM_RECOVERY);
	ADDSKILL(SM_BASH);
	ADDSKILL(SM_PROVOKE);
	ADDSKILL(SM_MAGNUM);
	ADDSKILL(SM_ENDURE);
	ADDSKILL(SM_MOVINGRECOVERY);
	ADDSKILL(SM_FATALBLOW);
	ADDSKILL(SM_AUTOBERSERK);
	ADDSKILL(MG_SRECOVERY);
	ADDSKILL(MG_SIGHT);
	ADDSKILL(MG_NAPALMBEAT);
	ADDSKILL(MG_SAFETYWALL);
	ADDSKILL(MG_SOULSTRIKE);
	ADDSKILL(MG_COLDBOLT);
	ADDSKILL(MG_FROSTDIVER);
	ADDSKILL(MG_STONECURSE);
	ADDSKILL(MG_FIREBALL);
	ADDSKILL(MG_FIREBOLT);
	ADDSKILL(MG_FIREWALL);
	ADDSKILL(MG_LIGHTNINGBOLT);
	ADDSKILL(MG_THUNDERSTORM);
	ADDSKILL(MG_ENERGYCOAT);
	ADDSKILL(AL_DP);
	ADDSKILL(AL_DEMONBANE);
	ADDSKILL(AL_RUWACH);
	ADDSKILL(AL_PNEUMA);
	ADDSKILL(AL_TELEPORT);
	ADDSKILL(AL_WARP);
	ADDSKILL(AL_HEAL);
	ADDSKILL(AL_INCAGI);
	ADDSKILL(AL_DECAGI);
	ADDSKILL(AL_HOLYWATER);
	ADDSKILL(AL_CRUCIS);
	ADDSKILL(AL_ANGELUS);
	ADDSKILL(AL_BLESSING);
	ADDSKILL(AL_CURE);
	ADDSKILL(AL_HOLYLIGHT);
	ADDSKILL(MC_INCCARRY);
	ADDSKILL(MC_DISCOUNT);
	ADDSKILL(MC_OVERCHARGE);
	ADDSKILL(MC_PUSHCART);
	ADDSKILL(MC_IDENTIFY);
	ADDSKILL(MC_VENDING);
	ADDSKILL(MC_MAMMONITE);
	ADDSKILL(MC_CARTREVOLUTION);
	ADDSKILL(MC_CHANGECART);
	ADDSKILL(MC_LOUD);
	ADDSKILL(AC_OWL);
	ADDSKILL(AC_VULTURE);
	ADDSKILL(AC_CONCENTRATION);
	ADDSKILL(AC_DOUBLE);
	ADDSKILL(AC_SHOWER);
	ADDSKILL(AC_MAKINGARROW);
	ADDSKILL(AC_CHARGEARROW);
	ADDSKILL(TF_DOUBLE);
	ADDSKILL(TF_MISS);
	ADDSKILL(TF_STEAL);
	ADDSKILL(TF_HIDING);
	ADDSKILL(TF_POISON);
	ADDSKILL(TF_DETOXIFY);
	ADDSKILL(TF_SPRINKLESAND);
	ADDSKILL(TF_BACKSLIDING);
	ADDSKILL(TF_PICKSTONE);
	ADDSKILL(TF_THROWSTONE);

	ADDSKILL(ALL_RESURRECTION);

	ADDSKILL(KN_SPEARMASTERY);
	ADDSKILL(KN_PIERCE);
	ADDSKILL(KN_BRANDISHSPEAR);
	ADDSKILL(KN_SPEARSTAB);
	ADDSKILL(KN_SPEARBOOMERANG);
	ADDSKILL(KN_TWOHANDQUICKEN);
	ADDSKILL(KN_AUTOCOUNTER);
	ADDSKILL(KN_BOWLINGBASH);
	ADDSKILL(KN_RIDING);
	ADDSKILL(KN_CAVALIERMASTERY);
	ADDSKILL(KN_CHARGEATK);
	ADDSKILL(PR_MACEMASTERY);
	ADDSKILL(PR_IMPOSITIO);
	ADDSKILL(PR_SUFFRAGIUM);
	ADDSKILL(PR_ASPERSIO);
	ADDSKILL(PR_BENEDICTIO);
	ADDSKILL(PR_SANCTUARY);
	ADDSKILL(PR_STRECOVERY);
	ADDSKILL(PR_SLOWPOISON);
	ADDSKILL(PR_KYRIE);
	ADDSKILL(PR_MAGNIFICAT);
	ADDSKILL(PR_GLORIA);
	ADDSKILL(PR_LEXDIVINA);
	ADDSKILL(PR_TURNUNDEAD);
	ADDSKILL(PR_LEXAETERNA);
	ADDSKILL(PR_MAGNUS);
	ADDSKILL(PR_REDEMPTIO);
	ADDSKILL(WZ_FIREPILLAR);
	ADDSKILL(WZ_SIGHTRASHER);
//	ADDSKILL(WZ_FIREIVY);
	ADDSKILL(WZ_METEOR);
	ADDSKILL(WZ_JUPITEL);
	ADDSKILL(WZ_VERMILION);
	ADDSKILL(WZ_WATERBALL);
	ADDSKILL(WZ_ICEWALL);
	ADDSKILL(WZ_FROSTNOVA);
	ADDSKILL(WZ_STORMGUST);
	ADDSKILL(WZ_EARTHSPIKE);
	ADDSKILL(WZ_HEAVENDRIVE);
	ADDSKILL(WZ_QUAGMIRE);
	ADDSKILL(WZ_ESTIMATION);
	ADDSKILL(WZ_SIGHTBLASTER);
	ADDSKILL(BS_IRON);
	ADDSKILL(BS_STEEL);
	ADDSKILL(BS_ENCHANTEDSTONE);
	ADDSKILL(BS_ORIDEOCON);
	ADDSKILL(BS_DAGGER);
	ADDSKILL(BS_SWORD);
	ADDSKILL(BS_TWOHANDSWORD);
	ADDSKILL(BS_AXE);
	ADDSKILL(BS_MACE);
	ADDSKILL(BS_KNUCKLE);
	ADDSKILL(BS_SPEAR);
	ADDSKILL(BS_HILTBINDING);
	ADDSKILL(BS_FINDINGORE);
	ADDSKILL(BS_WEAPONRESEARCH);
	ADDSKILL(BS_REPAIRWEAPON);
	ADDSKILL(BS_SKINTEMPER);
	ADDSKILL(BS_HAMMERFALL);
	ADDSKILL(BS_ADRENALINE);
	ADDSKILL(BS_WEAPONPERFECT);
	ADDSKILL(BS_OVERTHRUST);
	ADDSKILL(BS_MAXIMIZE);
	ADDSKILL(BS_GREED);
	ADDSKILL(BS_UNFAIRLYTRICK);
	ADDSKILL(HT_SKIDTRAP);
	ADDSKILL(HT_LANDMINE);
	ADDSKILL(HT_ANKLESNARE);
	ADDSKILL(HT_SHOCKWAVE);
	ADDSKILL(HT_SANDMAN);
	ADDSKILL(HT_FLASHER);
	ADDSKILL(HT_FREEZINGTRAP);
	ADDSKILL(HT_BLASTMINE);
	ADDSKILL(HT_CLAYMORETRAP);
	ADDSKILL(HT_REMOVETRAP);
	ADDSKILL(HT_TALKIEBOX);
	ADDSKILL(HT_BEASTBANE);
	ADDSKILL(HT_FALCON);
	ADDSKILL(HT_STEELCROW);
	ADDSKILL(HT_BLITZBEAT);
	ADDSKILL(HT_DETECTING);
	ADDSKILL(HT_SPRINGTRAP);
	ADDSKILL(HT_PHANTASMIC);
	ADDSKILL(AS_RIGHT);
	ADDSKILL(AS_LEFT);
	ADDSKILL(AS_KATAR);
	ADDSKILL(AS_CLOAKING);
	ADDSKILL(AS_SONICBLOW);
	ADDSKILL(AS_GRIMTOOTH);
	ADDSKILL(AS_ENCHANTPOISON);
	ADDSKILL(AS_POISONREACT);
	ADDSKILL(AS_VENOMDUST);
	ADDSKILL(AS_SPLASHER);
	ADDSKILL(AS_SONICACCEL);
	ADDSKILL(AS_VENOMKNIFE);

	ADDSKILL(NPC_PIERCINGATT);
	ADDSKILL(NPC_MENTALBREAKER);
	ADDSKILL(NPC_RANGEATTACK);
	ADDSKILL(NPC_ATTRICHANGE);
	ADDSKILL(NPC_CHANGEWATER);
	ADDSKILL(NPC_CHANGEGROUND);
	ADDSKILL(NPC_CHANGEFIRE);
	ADDSKILL(NPC_CHANGEWIND);
	ADDSKILL(NPC_CHANGEPOISON);
	ADDSKILL(NPC_CHANGEHOLY);
	ADDSKILL(NPC_CHANGEDARKNESS);
	ADDSKILL(NPC_CHANGETELEKINESIS);
	ADDSKILL(NPC_CHANGEUNDEAD2);
	ADDSKILL(NPC_CRITICALSLASH);
	ADDSKILL(NPC_COMBOATTACK);
	ADDSKILL(NPC_GUIDEDATTACK);
	ADDSKILL(NPC_SELFDESTRUCTION);
	ADDSKILL(NPC_SPLASHATTACK);
	ADDSKILL(NPC_SUICIDE);
	ADDSKILL(NPC_POISON);
	ADDSKILL(NPC_BLINDATTACK);
	ADDSKILL(NPC_SILENCEATTACK);
	ADDSKILL(NPC_STUNATTACK);
	ADDSKILL(NPC_PETRIFYATTACK);
	ADDSKILL(NPC_CURSEATTACK);
	ADDSKILL(NPC_SLEEPATTACK);
	ADDSKILL(NPC_RANDOMATTACK);
	ADDSKILL(NPC_WATERATTACK);
	ADDSKILL(NPC_GROUNDATTACK);
	ADDSKILL(NPC_FIREATTACK);
	ADDSKILL(NPC_WINDATTACK);
	ADDSKILL(NPC_POISONATTACK);
	ADDSKILL(NPC_HOLYATTACK);
	ADDSKILL(NPC_DARKNESSATTACK);
	ADDSKILL(NPC_TELEKINESISATTACK);
	ADDSKILL(NPC_MAGICALATTACK);
	ADDSKILL(NPC_METAMORPHOSIS);
	ADDSKILL(NPC_PROVOCATION);
	ADDSKILL(NPC_SMOKING);
	ADDSKILL(NPC_SUMMONSLAVE);
	ADDSKILL(NPC_EMOTION);
	ADDSKILL(NPC_TRANSFORMATION);
	ADDSKILL(NPC_BLOODDRAIN);
	ADDSKILL(NPC_ENERGYDRAIN);
	ADDSKILL(NPC_KEEPING);
	ADDSKILL(NPC_DARKBREATH);
	ADDSKILL(NPC_DARKBLESSING);
	ADDSKILL(NPC_BARRIER);
	ADDSKILL(NPC_DEFENDER);
	ADDSKILL(NPC_LICK);
	ADDSKILL(NPC_HALLUCINATION);
	ADDSKILL(NPC_REBIRTH);
	ADDSKILL(NPC_SUMMONMONSTER);
	ADDSKILL(NPC_RANDOMMOVE);
	ADDSKILL(NPC_SPEEDUP);
	ADDSKILL(NPC_REVENGE);
	ADDSKILL(NPC_WIDEHEALTHFEAR);
	ADDSKILL(NPC_WIDEBODYBURNNING);
	ADDSKILL(NPC_WIDEFROSTMISTY);
	ADDSKILL(NPC_WIDECOLD);
	ADDSKILL(NPC_WIDE_DEEP_SLEEP);
	ADDSKILL(NPC_WIDESIREN);


	ADDSKILL(RG_SNATCHER);
	ADDSKILL(RG_STEALCOIN);
	ADDSKILL(RG_BACKSTAP);
	ADDSKILL(RG_TUNNELDRIVE);
	ADDSKILL(RG_RAID);
	ADDSKILL(RG_STRIPWEAPON);
	ADDSKILL(RG_STRIPSHIELD);
	ADDSKILL(RG_STRIPARMOR);
	ADDSKILL(RG_STRIPHELM);
	ADDSKILL(RG_INTIMIDATE);
	ADDSKILL(RG_GRAFFITI);
	ADDSKILL(RG_FLAGGRAFFITI);
	ADDSKILL(RG_CLEANER);
	ADDSKILL(RG_GANGSTER);
	ADDSKILL(RG_COMPULSION);
	ADDSKILL(RG_PLAGIARISM);
	ADDSKILL(RG_CLOSECONFINE);
	ADDSKILL(AM_AXEMASTERY);
	ADDSKILL(AM_LEARNINGPOTION);
	ADDSKILL(AM_PHARMACY);
	ADDSKILL(AM_DEMONSTRATION);
	ADDSKILL(AM_ACIDTERROR);
	ADDSKILL(AM_POTIONPITCHER);
	ADDSKILL(AM_CANNIBALIZE);
	ADDSKILL(AM_SPHEREMINE);
	ADDSKILL(AM_CP_WEAPON);
	ADDSKILL(AM_CP_SHIELD);
	ADDSKILL(AM_CP_ARMOR);
	ADDSKILL(AM_CP_HELM);
	ADDSKILL(AM_BIOETHICS);
	ADDSKILL(AM_BIOTECHNOLOGY);
	ADDSKILL(AM_CREATECREATURE);
	ADDSKILL(AM_CULTIVATION);
	ADDSKILL(AM_FLAMECONTROL);
	ADDSKILL(AM_CALLHOMUN);
	ADDSKILL(AM_REST);
	ADDSKILL(AM_DRILLMASTER);
	ADDSKILL(AM_HEALHOMUN);
	ADDSKILL(AM_RESURRECTHOMUN);
	ADDSKILL(BD_ADAPTATION);
	ADDSKILL(BD_ENCORE);
	ADDSKILL(BD_LULLABY);
	ADDSKILL(BD_RICHMANKIM);
	ADDSKILL(BD_ETERNALCHAOS);
	ADDSKILL(BD_DRUMBATTLEFIELD);
	ADDSKILL(BD_RINGNIBELUNGEN);
	ADDSKILL(BD_ROKISWEIL);
	ADDSKILL(BD_INTOABYSS);
	ADDSKILL(BD_SIEGFRIED);
//	ADDSKILL(BD_RAGNAROK);
	ADDSKILL(BA_MUSICALLESSON);
	ADDSKILL(BA_MUSICALSTRIKE);
	ADDSKILL(BA_DISSONANCE);
	ADDSKILL(BA_FROSTJOKER);
	ADDSKILL(BA_WHISTLE);
	ADDSKILL(BA_ASSASSINCROSS);
	ADDSKILL(BA_POEMBRAGI);
	ADDSKILL(BA_APPLEIDUN);
	ADDSKILL(BA_PANGVOICE);
	ADDSKILL(DC_DANCINGLESSON);
	ADDSKILL(DC_THROWARROW);
	ADDSKILL(DC_UGLYDANCE);
	ADDSKILL(DC_SCREAM);
	ADDSKILL(DC_HUMMING);
	ADDSKILL(DC_DONTFORGETME);
	ADDSKILL(DC_FORTUNEKISS);
	ADDSKILL(DC_SERVICEFORYOU);
	ADDSKILL(DC_WINKCHARM);
	ADDSKILL(CR_TRUST);
	ADDSKILL(CR_AUTOGUARD);
	ADDSKILL(CR_SHIELDCHARGE);
	ADDSKILL(CR_SHIELDBOOMERANG);
	ADDSKILL(CR_REFLECTSHIELD);
	ADDSKILL(CR_HOLYCROSS);
	ADDSKILL(CR_GRANDCROSS);
	ADDSKILL(CR_DEVOTION);
	ADDSKILL(CR_PROVIDENCE);
	ADDSKILL(CR_DEFENDER);
	ADDSKILL(CR_SPEARQUICKEN);
	ADDSKILL(CR_SHRINK);
	ADDSKILL(MO_IRONHAND);
	ADDSKILL(MO_SPIRITSRECOVERY);
	ADDSKILL(MO_CALLSPIRITS);
	ADDSKILL(MO_ABSORBSPIRITS);
	ADDSKILL(MO_TRIPLEATTACK);
	ADDSKILL(MO_BODYRELOCATION);
	ADDSKILL(MO_DODGE);
	ADDSKILL(MO_INVESTIGATE);
	ADDSKILL(MO_FINGEROFFENSIVE);
	ADDSKILL(MO_STEELBODY);
	ADDSKILL(MO_BLADESTOP);
	ADDSKILL(MO_EXPLOSIONSPIRITS);
	ADDSKILL(MO_EXTREMITYFIST);
	ADDSKILL(MO_CHAINCOMBO);
	ADDSKILL(MO_COMBOFINISH);
	ADDSKILL(MO_KITRANSLATION);
	ADDSKILL(MO_BALKYOUNG);
	ADDSKILL(SA_ADVANCEDBOOK);
	ADDSKILL(SA_CASTCANCEL);
	ADDSKILL(SA_MAGICROD);
	ADDSKILL(SA_SPELLBREAKER);
	ADDSKILL(SA_FREECAST);
	ADDSKILL(SA_AUTOSPELL);
	ADDSKILL(SA_FLAMELAUNCHER);
	ADDSKILL(SA_FROSTWEAPON);
	ADDSKILL(SA_LIGHTNINGLOADER);
	ADDSKILL(SA_SEISMICWEAPON);
	ADDSKILL(SA_DRAGONOLOGY);
	ADDSKILL(SA_VOLCANO);
	ADDSKILL(SA_DELUGE);
	ADDSKILL(SA_VIOLENTGALE);
	ADDSKILL(SA_LANDPROTECTOR);
	ADDSKILL(SA_DISPELL);
	ADDSKILL(SA_ABRACADABRA);
	ADDSKILL(SA_MONOCELL);
	ADDSKILL(SA_CLASSCHANGE);
	ADDSKILL(SA_SUMMONMONSTER);
	ADDSKILL(SA_REVERSEORCISH);
	ADDSKILL(SA_DEATH);
	ADDSKILL(SA_FORTUNE);
	ADDSKILL(SA_TAMINGMONSTER);
	ADDSKILL(SA_QUESTION);
	ADDSKILL(SA_GRAVITY);
	ADDSKILL(SA_LEVELUP);
	ADDSKILL(SA_INSTANTDEATH);
	ADDSKILL(SA_FULLRECOVERY);
	ADDSKILL(SA_COMA);
	ADDSKILL(SA_CREATECON);
	ADDSKILL(SA_ELEMENTWATER);
	ADDSKILL(SA_ELEMENTGROUND);
	ADDSKILL(SA_ELEMENTFIRE);
	ADDSKILL(SA_ELEMENTWIND);



	ADDSKILL(WE_MALE);
	ADDSKILL(WE_FEMALE);
	ADDSKILL(WE_CALLPARTNER);



	ADDSKILL(ITM_TOMAHAWK);



	ADDSKILL(NPC_DARKCROSS);
	ADDSKILL(NPC_GRANDDARKNESS);
	ADDSKILL(NPC_DARKSTRIKE);
	ADDSKILL(NPC_DARKTHUNDER);
	ADDSKILL(NPC_STOP);
	ADDSKILL(NPC_WEAPONBRAKER);
	ADDSKILL(NPC_ARMORBRAKE);
	ADDSKILL(NPC_HELMBRAKE);
	ADDSKILL(NPC_SHIELDBRAKE);
	ADDSKILL(NPC_UNDEADATTACK);
	ADDSKILL(NPC_CHANGEUNDEAD);
	ADDSKILL(NPC_POWERUP);
	ADDSKILL(NPC_AGIUP);
	ADDSKILL(NPC_SIEGEMODE);
	ADDSKILL(NPC_CALLSLAVE);
	ADDSKILL(NPC_INVISIBLE);
	ADDSKILL(NPC_RUN);
	ADDSKILL(NPC_EMOTION_ON);



	ADDSKILL(LK_AURABLADE);
	ADDSKILL(LK_PARRYING);
	ADDSKILL(LK_CONCENTRATION);
	ADDSKILL(LK_TENSIONRELAX);
	ADDSKILL(LK_BERSERK);
	ADDSKILL(LK_FURY);
	ADDSKILL(LK_SPIRALPIERCE);
	ADDSKILL(LK_HEADCRUSH);
	ADDSKILL(LK_JOINTBEAT);
	ADDSKILL(HP_ASSUMPTIO);
	ADDSKILL(HP_BASILICA);
	ADDSKILL(HP_MEDITATIO);
	ADDSKILL(HW_SOULDRAIN);
	ADDSKILL(HW_MAGICCRASHER);
	ADDSKILL(HW_MAGICPOWER);
	ADDSKILL(HW_NAPALMVULCAN);
	ADDSKILL(PA_PRESSURE);
	ADDSKILL(PA_SACRIFICE);
	ADDSKILL(PA_GOSPEL);
	ADDSKILL(CH_PALMSTRIKE);
	ADDSKILL(CH_TIGERFIST);
	ADDSKILL(CH_CHAINCRUSH);
	ADDSKILL(CH_SOULCOLLECT);
	ADDSKILL(PF_HPCONVERSION);
	ADDSKILL(PF_SOULCHANGE);
	ADDSKILL(PF_SOULBURN);
	ADDSKILL(PF_MINDBREAKER);
	ADDSKILL(PF_MEMORIZE);
	ADDSKILL(PF_FOGWALL);
	ADDSKILL(PF_SPIDERWEB);
	ADDSKILL(ASC_KATAR);
//	ADDSKILL(ASC_HALLUCINATION);
	ADDSKILL(ASC_EDP);
	ADDSKILL(ASC_BREAKER);
	ADDSKILL(ASC_METEORASSAULT);
	ADDSKILL(ASC_CDP);
	ADDSKILL(SN_SIGHT);
	ADDSKILL(SN_FALCONASSAULT);
	ADDSKILL(SN_SHARPSHOOTING);
	ADDSKILL(SN_WINDWALK);
	ADDSKILL(WS_MELTDOWN);
	ADDSKILL(WS_CREATECOIN);
	ADDSKILL(WS_CREATENUGGET);
	ADDSKILL(WS_CARTBOOST);
	ADDSKILL(WS_SYSTEMCREATE);
	ADDSKILL(ST_CHASEWALK);
	ADDSKILL(ST_REJECTSWORD);
	ADDSKILL(ST_STEALBACKPACK);
//	ADDSKILL(CR_ALCHEMY);
//	ADDSKILL(CR_SYNTHESISPOTION);
	ADDSKILL(CG_ARROWVULCAN);
	ADDSKILL(CG_MOONLIT);
	ADDSKILL(CG_MARIONETTE);
	ADDSKILL(ST_PRESERVE);
	ADDSKILL(ST_FULLSTRIP);
	ADDSKILL(WS_WEAPONREFINE);
	ADDSKILL(CR_SLIMPITCHER);
	ADDSKILL(CR_FULLPROTECTION);



	ADDSKILL(WE_BABY);
	ADDSKILL(WE_CALLPARENT);
	ADDSKILL(WE_CALLBABY);



	ADDSKILL(TK_RUN);
	ADDSKILL(TK_READYSTORM);
	ADDSKILL(TK_STORMKICK);
	ADDSKILL(TK_READYDOWN);
	ADDSKILL(TK_DOWNKICK);
	ADDSKILL(TK_READYTURN);
	ADDSKILL(TK_TURNKICK);
	ADDSKILL(TK_READYCOUNTER);
	ADDSKILL(TK_COUNTER);
	ADDSKILL(TK_DODGE);
	ADDSKILL(TK_JUMPKICK);
	ADDSKILL(TK_HPTIME);
	ADDSKILL(TK_SPTIME);
	ADDSKILL(TK_POWER);
	ADDSKILL(TK_SEVENWIND);
	ADDSKILL(TK_MISSION);
	ADDSKILL(TK_HIGHJUMP);

	ADDSKILL(SG_FEEL);
	ADDSKILL(SG_SUN_WARM);
	ADDSKILL(SG_MOON_WARM);
	ADDSKILL(SG_STAR_WARM);
	ADDSKILL(SG_HATE);
	ADDSKILL(SG_SUN_ANGER);
	ADDSKILL(SG_MOON_ANGER);
	ADDSKILL(SG_STAR_ANGER);
	ADDSKILL(SG_SUN_COMFORT);
	ADDSKILL(SG_MOON_COMFORT);
	ADDSKILL(SG_STAR_COMFORT);
	ADDSKILL(SG_SUN_BLESS);
	ADDSKILL(SG_MOON_BLESS);
	ADDSKILL(SG_STAR_BLESS);
	ADDSKILL(SG_DEVIL);
	ADDSKILL(SG_FRIEND);
	ADDSKILL(SG_KNOWLEDGE);
	ADDSKILL(SG_FUSION);

	ADDSKILL(SL_ALCHEMIST);
	ADDSKILL(AM_BERSERKPITCHER);
	ADDSKILL(SL_MONK);
	ADDSKILL(SL_STAR);
	ADDSKILL(SL_SAGE);
	ADDSKILL(SL_CRUSADER);
	ADDSKILL(SL_SUPERNOVICE);
	ADDSKILL(SL_KNIGHT);
	ADDSKILL(SL_WIZARD);
	ADDSKILL(SL_PRIEST);
	ADDSKILL(SL_BARDDANCER);
	ADDSKILL(SL_ROGUE);
	ADDSKILL(SL_ASSASIN);
	ADDSKILL(SL_BLACKSMITH);
	ADDSKILL(BS_ADRENALINE2);
	ADDSKILL(SL_HUNTER);
	ADDSKILL(SL_SOULLINKER);
	//
	ADDSKILL(SL_DEATHKNIGHT);
	ADDSKILL(SL_COLLECTOR);
	ADDSKILL(SL_NINJA);
	ADDSKILL(SL_GUNNER);
	//
	ADDSKILL(SL_KAIZEL);
	ADDSKILL(SL_KAAHI);
	ADDSKILL(SL_KAUPE);
	ADDSKILL(SL_KAITE);
	ADDSKILL(SL_KAINA);
	ADDSKILL(SL_STIN);
	ADDSKILL(SL_STUN);
	ADDSKILL(SL_SMA);
	ADDSKILL(SL_SWOO);
	ADDSKILL(SL_SKE);
	ADDSKILL(SL_SKA);
	ADDSKILL(SL_HIGH);
	ADDSKILL(KN_ONEHAND);
	//
	ADDSKILL(AM_TWILIGHT1);
	ADDSKILL(AM_TWILIGHT2);
	ADDSKILL(AM_TWILIGHT3);
	ADDSKILL(HT_POWER);


	ADDSKILL(SM_SELFPROVOKE);


	ADDSKILL(PA_SHIELDCHAIN);
	ADDSKILL(HP_MANARECHARGE);
	ADDSKILL(PF_DOUBLECASTING);
	ADDSKILL(HW_GANBANTEIN);
	ADDSKILL(HW_GRAVITATION);
	ADDSKILL(WS_CARTTERMINATION);
	ADDSKILL(WS_OVERTHRUSTMAX);
	ADDSKILL(CG_LONGINGFREEDOM);
	ADDSKILL(CG_HERMODE);
	ADDSKILL(CG_TAROTCARD);
	ADDSKILL(CR_ACIDDEMONSTRATION);
	ADDSKILL(CR_CULTIVATION);


	ADDSKILL(ITEM_ENCHANTARMS);

	ADDSKILL(GS_GLITTERING);
	ADDSKILL(GS_FLING);
	ADDSKILL(GS_TRIPLEACTION);
	ADDSKILL(GS_BULLSEYE);
	ADDSKILL(GS_MADNESSCANCEL);
	ADDSKILL(GS_ADJUSTMENT);
	ADDSKILL(GS_INCREASING);
	ADDSKILL(GS_MAGICALBULLET);
	ADDSKILL(GS_CRACKER);
	ADDSKILL(GS_SINGLEACTION);
	ADDSKILL(GS_SNAKEEYE);
	ADDSKILL(GS_CHAINACTION);
	ADDSKILL(GS_TRACKING);
	ADDSKILL(GS_DISARM);
	ADDSKILL(GS_PIERCINGSHOT);
	ADDSKILL(GS_RAPIDSHOWER);
	ADDSKILL(GS_DESPERADO);
	ADDSKILL(GS_GATLINGFEVER);
	ADDSKILL(GS_DUST);
	ADDSKILL(GS_FULLBUSTER);
	ADDSKILL(GS_SPREADATTACK);
	ADDSKILL(GS_GROUNDDRIFT);

	ADDSKILL(NJ_TOBIDOUGU);
	ADDSKILL(NJ_SYURIKEN);
	ADDSKILL(NJ_KUNAI);
	ADDSKILL(NJ_HUUMA);
	ADDSKILL(NJ_ZENYNAGE);
	ADDSKILL(NJ_TATAMIGAESHI);
	ADDSKILL(NJ_KASUMIKIRI);
	ADDSKILL(NJ_SHADOWJUMP);
	ADDSKILL(NJ_KIRIKAGE);
	ADDSKILL(NJ_UTSUSEMI);
	ADDSKILL(NJ_BUNSINJYUTSU);
	ADDSKILL(NJ_NINPOU);
	ADDSKILL(NJ_KOUENKA);
	ADDSKILL(NJ_KAENSIN);
	ADDSKILL(NJ_BAKUENRYU);
	ADDSKILL(NJ_HYOUSENSOU);
	ADDSKILL(NJ_SUITON);
	ADDSKILL(NJ_HYOUSYOURAKU);
	ADDSKILL(NJ_HUUJIN);
	ADDSKILL(NJ_RAIGEKISAI);
	ADDSKILL(NJ_KAMAITACHI);
	ADDSKILL(NJ_NEN);
	ADDSKILL(NJ_ISSEN);

	ADDSKILL(MB_FIGHTING);
	ADDSKILL(MB_NEUTRAL);
	ADDSKILL(MB_TAIMING_PUTI);
	ADDSKILL(MB_WHITEPOTION);
	ADDSKILL(MB_MENTAL);
	ADDSKILL(MB_CARDPITCHER);
	ADDSKILL(MB_PETPITCHER);
	ADDSKILL(MB_BODYSTUDY);
	ADDSKILL(MB_BODYALTER);
	ADDSKILL(MB_PETMEMORY);
	ADDSKILL(MB_M_TELEPORT);
	ADDSKILL(MB_B_GAIN);
	ADDSKILL(MB_M_GAIN);
	ADDSKILL(MB_MISSION);
	ADDSKILL(MB_MUNAKKNOWLEDGE);
	ADDSKILL(MB_MUNAKBALL);
	ADDSKILL(MB_SCROLL);
	ADDSKILL(MB_B_GATHERING);
	ADDSKILL(MB_M_GATHERING);
	ADDSKILL(MB_B_EXCLUDE);
	ADDSKILL(MB_B_DRIFT);
	ADDSKILL(MB_B_WALLRUSH);
	ADDSKILL(MB_M_WALLRUSH);
	ADDSKILL(MB_B_WALLSHIFT);
	ADDSKILL(MB_M_WALLCRASH);
	ADDSKILL(MB_M_REINCARNATION);
	ADDSKILL(MB_B_EQUIP);

	ADDSKILL(AM_TWILIGHT4);
//	ADDSKILL(DA_RESET);
	ADDSKILL(DE_BERSERKAIZER);
	ADDSKILL(DA_DARKPOWER);

	ADDSKILL(DE_PASSIVE);
	ADDSKILL(DE_PATTACK);
	ADDSKILL(DE_PSPEED);
	ADDSKILL(DE_PDEFENSE);
	ADDSKILL(DE_PCRITICAL);
	ADDSKILL(DE_PHP);
	ADDSKILL(DE_PSP);
	ADDSKILL(DE_RESET);
	ADDSKILL(DE_RANKING);
	ADDSKILL(DE_PTRIPLE);
	ADDSKILL(DE_ENERGY);
	ADDSKILL(DE_NIGHTMARE);
	ADDSKILL(DE_SLASH);
	ADDSKILL(DE_COIL);
	ADDSKILL(DE_WAVE);
	ADDSKILL(DE_REBIRTH);
	ADDSKILL(DE_AURA);
	ADDSKILL(DE_FREEZER);
	ADDSKILL(DE_CHANGEATTACK);
	ADDSKILL(DE_PUNISH);
	ADDSKILL(DE_POISON);
	ADDSKILL(DE_INSTANT);
	ADDSKILL(DE_WARNING);
	ADDSKILL(DE_RANKEDKNIFE);
	ADDSKILL(DE_RANKEDGRADIUS);
	ADDSKILL(DE_GAUGE);
	ADDSKILL(DE_GTIME);
	ADDSKILL(DE_GPAIN);
	ADDSKILL(DE_GSKILL);
	ADDSKILL(DE_GKILL);
	ADDSKILL(DE_ACCEL);
	ADDSKILL(DE_BLOCKDOUBLE);
	ADDSKILL(DE_BLOCKMELEE);
	ADDSKILL(DE_BLOCKFAR);
	ADDSKILL(DE_FRONTATTACK);
	ADDSKILL(DE_DANGERATTACK);
	ADDSKILL(DE_TWINATTACK);
	ADDSKILL(DE_WINDATTACK);
	ADDSKILL(DE_WATERATTACK);

	ADDSKILL(DA_ENERGY);
	ADDSKILL(DA_CLOUD);
	ADDSKILL(DA_FIRSTSLOT);
	ADDSKILL(DA_HEADDEF);
	ADDSKILL(DA_SPACE);
	ADDSKILL(DA_TRANSFORM);
	ADDSKILL(DA_EXPLOSION);
	ADDSKILL(DA_REWARD);
	ADDSKILL(DA_CRUSH);
	ADDSKILL(DA_ITEMREBUILD);
	ADDSKILL(DA_ILLUSION);
	ADDSKILL(DA_NUETRALIZE);
	ADDSKILL(DA_RUNNER);
	ADDSKILL(DA_TRANSFER);
	ADDSKILL(DA_WALL);
//	ADDSKILL(DA_ZENY);
	ADDSKILL(DA_REVENGE);
	ADDSKILL(DA_EARPLUG);
	ADDSKILL(DA_CONTRACT);
	ADDSKILL(DA_BLACK);
	ADDSKILL(DA_DREAM);
	ADDSKILL(DA_MAGICCART);
	ADDSKILL(DA_COPY);
	ADDSKILL(DA_CRYSTAL);
	ADDSKILL(DA_EXP);
	ADDSKILL(DA_CARTSWING);
	ADDSKILL(DA_REBUILD);
	ADDSKILL(DA_JOBCHANGE);
	ADDSKILL(DA_EDARKNESS);
	ADDSKILL(DA_EGUARDIAN);
	ADDSKILL(DA_TIMEOUT);
	ADDSKILL(ALL_TIMEIN);
	ADDSKILL(DA_ZENYRANK);
	ADDSKILL(DA_ACCESSORYMIX);

	ADDSKILL(NPC_TALK);
	ADDSKILL(NPC_HELLPOWER);
	ADDSKILL(NPC_WIDEHELLDIGNITY);
	ADDSKILL(NPC_INVINCIBLE);
	ADDSKILL(NPC_INVINCIBLEOFF);
	ADDSKILL(NPC_ALLHEAL);
	ADDSKILL(GM_SANDMAN);
	ADDSKILL(CASH_BLESSING);
	ADDSKILL(CASH_INCAGI);
	ADDSKILL(CASH_ASSUMPTIO);
	ADDSKILL(ALL_CATCRY);
	ADDSKILL(ALL_PARTYFLEE);
	ADDSKILL(ALL_ANGEL_PROTECT);
	ADDSKILL(ALL_DREAM_SUMMERNIGHT);
	ADDSKILL(ALL_REVERSEORCISH);
	ADDSKILL(ALL_WEWISH);
	ADDSKILL(ALL_SONKRAN);


	ADDSKILL(ALL_BUYING_STORE);



	ADDSKILL2(NPC_EARTHQUAKE);
	ADDSKILL2(NPC_FIREBREATH);
	ADDSKILL2(NPC_ICEBREATH);
	ADDSKILL2(NPC_THUNDERBREATH);
	ADDSKILL2(NPC_ACIDBREATH);
	ADDSKILL2(NPC_DARKNESSBREATH);
	ADDSKILL2(NPC_DRAGONFEAR);
	ADDSKILL2(NPC_BLEEDING);
	ADDSKILL2(NPC_PULSESTRIKE);
	ADDSKILL2(NPC_HELLJUDGEMENT);
	ADDSKILL2(NPC_WIDESILENCE);
	ADDSKILL2(NPC_WIDEFREEZE);
	ADDSKILL2(NPC_WIDEBLEEDING);
	ADDSKILL2(NPC_WIDESTONE);
	ADDSKILL2(NPC_WIDECONFUSE);
	ADDSKILL2(NPC_WIDESLEEP);
	ADDSKILL2(NPC_WIDESIGHT);
	ADDSKILL2(NPC_WIDESTUN);
	ADDSKILL2(NPC_WIDECURSE);
	ADDSKILL2(NPC_EVILLAND);
	ADDSKILL2(NPC_MAGICMIRROR);
	ADDSKILL2(NPC_SLOWCAST);
	ADDSKILL2(NPC_CRITICALWOUND);
	ADDSKILL2(NPC_EXPULSION);
	ADDSKILL2(NPC_STONESKIN);
	ADDSKILL2(NPC_ANTIMAGIC);
	ADDSKILL2(MER_CRASH);
	ADDSKILL2(MER_REGAIN);
	ADDSKILL2(MER_TENDER);
	ADDSKILL2(MER_BENEDICTION);
	ADDSKILL2(MER_RECUPERATE);
	ADDSKILL2(MER_MENTALCURE);
	ADDSKILL2(MER_COMPRESS);
	ADDSKILL2(MER_SCAPEGOAT);
	ADDSKILL2(NPC_VAMPIRE_GIFT);
	ADDSKILL2(NPC_WIDESOULDRAIN);
	ADDSKILL2(ALL_INCCARRY);
	ADDSKILL2(ALL_ODINS_RECALL);
	ADDSKILL2(RETURN_TO_ELDICASTES);
	ADDSKILL2(ALL_GUARDIAN_RECALL);
	ADDSKILL2(ALL_ODINS_POWER);



	ADDSKILL2(RK_ENCHANTBLADE);
	ADDSKILL2(RK_SONICWAVE);
	ADDSKILL2(RK_DEATHBOUND);
	ADDSKILL2(RK_HUNDREDSPEAR);
	ADDSKILL2(RK_WINDCUTTER);
	ADDSKILL2(RK_IGNITIONBREAK);
	ADDSKILL2(RK_DRAGONTRAINING);
	ADDSKILL2(RK_DRAGONBREATH);
	ADDSKILL2(RK_DRAGONHOWLING);
	ADDSKILL2(RK_RUNEMASTERY);
	ADDSKILL2(RK_MILLENNIUMSHIELD);
	ADDSKILL2(RK_CRUSHSTRIKE);
	ADDSKILL2(RK_REFRESH);
	ADDSKILL2(RK_GIANTGROWTH);
	ADDSKILL2(RK_STONEHARDSKIN);
	ADDSKILL2(RK_VITALITYACTIVATION);
	ADDSKILL2(RK_STORMBLAST);
	ADDSKILL2(RK_FIGHTINGSPIRIT);
	ADDSKILL2(RK_ABUNDANCE);
	ADDSKILL2(RK_PHANTOMTHRUST);

	ADDSKILL2(GC_VENOMIMPRESS);
	ADDSKILL2(GC_CROSSIMPACT);
	ADDSKILL2(GC_DARKILLUSION);
	ADDSKILL2(GC_RESEARCHNEWPOISON);
	ADDSKILL2(GC_CREATENEWPOISON);
	ADDSKILL2(GC_ANTIDOTE);
	ADDSKILL2(GC_POISONINGWEAPON);
	ADDSKILL2(GC_WEAPONBLOCKING);
	ADDSKILL2(GC_COUNTERSLASH);
	ADDSKILL2(GC_WEAPONCRUSH);
	ADDSKILL2(GC_VENOMPRESSURE);
	ADDSKILL2(GC_POISONSMOKE);
	ADDSKILL2(GC_CLOAKINGEXCEED);
	ADDSKILL2(GC_PHANTOMMENACE);
	ADDSKILL2(GC_HALLUCINATIONWALK);
	ADDSKILL2(GC_ROLLINGCUTTER);
	ADDSKILL2(GC_CROSSRIPPERSLASHER);

	ADDSKILL2(AB_JUDEX);
	ADDSKILL2(AB_ANCILLA);
	ADDSKILL2(AB_ADORAMUS);
	ADDSKILL2(AB_CLEMENTIA);
	ADDSKILL2(AB_CANTO);
	ADDSKILL2(AB_CHEAL);
	ADDSKILL2(AB_EPICLESIS);
	ADDSKILL2(AB_PRAEFATIO);
	ADDSKILL2(AB_ORATIO);
	ADDSKILL2(AB_LAUDAAGNUS);
	ADDSKILL2(AB_LAUDARAMUS);
	ADDSKILL2(AB_EUCHARISTICA);
	ADDSKILL2(AB_RENOVATIO);
	ADDSKILL2(AB_HIGHNESSHEAL);
	ADDSKILL2(AB_CLEARANCE);
	ADDSKILL2(AB_EXPIATIO);
	ADDSKILL2(AB_DUPLELIGHT);
	ADDSKILL2(AB_DUPLELIGHT_MELEE);
	ADDSKILL2(AB_DUPLELIGHT_MAGIC);
	ADDSKILL2(AB_SILENTIUM);
	ADDSKILL2(AB_SECRAMENT);

	ADDSKILL2(WL_WHITEIMPRISON);
	ADDSKILL2(WL_SOULEXPANSION);
	ADDSKILL2(WL_FROSTMISTY);
	ADDSKILL2(WL_JACKFROST);
	ADDSKILL2(WL_MARSHOFABYSS);
	ADDSKILL2(WL_RECOGNIZEDSPELL);
	ADDSKILL2(WL_SIENNAEXECRATE);
	ADDSKILL2(WL_RADIUS);
	ADDSKILL2(WL_STASIS);
	ADDSKILL2(WL_DRAINLIFE);
	ADDSKILL2(WL_CRIMSONROCK);
	ADDSKILL2(WL_HELLINFERNO);
	ADDSKILL2(WL_COMET);
	ADDSKILL2(WL_CHAINLIGHTNING);
	ADDSKILL2(WL_CHAINLIGHTNING_ATK);
	ADDSKILL2(WL_EARTHSTRAIN);
	ADDSKILL2(WL_TETRAVORTEX);
	//
//	ADDSKILL2(WL_TETRAVORTEX_FIRE);
//	ADDSKILL2(WL_TETRAVORTEX_WATER);
//	ADDSKILL2(WL_TETRAVORTEX_WIND);
//	ADDSKILL2(WL_TETRAVORTEX_GROUND);
	//
	ADDSKILL2(WL_SUMMONFB);
	ADDSKILL2(WL_SUMMON_ATK_FIRE);
	ADDSKILL2(WL_SUMMONBL);
	ADDSKILL2(WL_SUMMON_ATK_WIND);
	ADDSKILL2(WL_SUMMONWB);
	ADDSKILL2(WL_SUMMON_ATK_WATER);
	ADDSKILL2(WL_SUMMONSTONE);
	ADDSKILL2(WL_SUMMON_ATK_GROUND);
	ADDSKILL2(WL_RELEASE);
	ADDSKILL2(WL_READING_SB);
	ADDSKILL2(WL_FREEZE_SP);

	ADDSKILL2(RA_ARROWSTORM);
	ADDSKILL2(RA_FEARBREEZE);
	ADDSKILL2(RA_RANGERMAIN);
	ADDSKILL2(RA_AIMEDBOLT);
	ADDSKILL2(RA_DETONATOR);
	ADDSKILL2(RA_ELECTRICSHOCKER);
	ADDSKILL2(RA_CLUSTERBOMB);
	ADDSKILL2(RA_WUGMASTERY);
	ADDSKILL2(RA_WUGRIDER);
	ADDSKILL2(RA_WUGDASH);
	ADDSKILL2(RA_WUGSTRIKE);
	ADDSKILL2(RA_WUGBITE);
	ADDSKILL2(RA_TOOTHOFWUG);
	ADDSKILL2(RA_SENSITIVEKEEN);
	ADDSKILL2(RA_CAMOUFLAGE);
	ADDSKILL2(RA_RESEARCHTRAP);
	ADDSKILL2(RA_MAGENTATRAP);
	ADDSKILL2(RA_COBALTTRAP);
	ADDSKILL2(RA_MAIZETRAP);
	ADDSKILL2(RA_VERDURETRAP);
	ADDSKILL2(RA_FIRINGTRAP);
	ADDSKILL2(RA_ICEBOUNDTRAP);

	ADDSKILL2(NC_MADOLICENCE);
	ADDSKILL2(NC_BOOSTKNUCKLE);
	ADDSKILL2(NC_PILEBUNKER);
	ADDSKILL2(NC_VULCANARM);
	ADDSKILL2(NC_FLAMELAUNCHER);
	ADDSKILL2(NC_COLDSLOWER);
	ADDSKILL2(NC_ARMSCANNON);
	ADDSKILL2(NC_ACCELERATION);
	ADDSKILL2(NC_HOVERING);
	ADDSKILL2(NC_F_SIDESLIDE);
	ADDSKILL2(NC_B_SIDESLIDE);
	ADDSKILL2(NC_MAINFRAME);
	ADDSKILL2(NC_SELFDESTRUCTION);
	ADDSKILL2(NC_SHAPESHIFT);
	ADDSKILL2(NC_EMERGENCYCOOL);
	ADDSKILL2(NC_INFRAREDSCAN);
	ADDSKILL2(NC_ANALYZE);
	ADDSKILL2(NC_MAGNETICFIELD);
	ADDSKILL2(NC_NEUTRALBARRIER);
	ADDSKILL2(NC_STEALTHFIELD);
	ADDSKILL2(NC_REPAIR);
	ADDSKILL2(NC_TRAININGAXE);
	ADDSKILL2(NC_RESEARCHFE);
	ADDSKILL2(NC_AXEBOOMERANG);
	ADDSKILL2(NC_POWERSWING);
	ADDSKILL2(NC_AXETORNADO);
	ADDSKILL2(NC_SILVERSNIPER);
	ADDSKILL2(NC_MAGICDECOY);
	ADDSKILL2(NC_DISJOINT);

	ADDSKILL2(LG_CANNONSPEAR);
	ADDSKILL2(LG_BANISHINGPOINT);
	ADDSKILL2(LG_TRAMPLE);
	ADDSKILL2(LG_SHIELDPRESS);
	ADDSKILL2(LG_REFLECTDAMAGE);
	ADDSKILL2(LG_PINPOINTATTACK);
	ADDSKILL2(LG_FORCEOFVANGUARD);
	ADDSKILL2(LG_RAGEBURST);
	ADDSKILL2(LG_SHIELDSPELL);
	ADDSKILL2(LG_EXEEDBREAK);
	ADDSKILL2(LG_OVERBRAND);
	ADDSKILL2(LG_OVERBRAND_BRANDISH);
	ADDSKILL2(LG_OVERBRAND_PLUSATK);
	ADDSKILL2(LG_PRESTIGE);
	ADDSKILL2(LG_BANDING);
	ADDSKILL2(LG_MOONSLASHER);
	ADDSKILL2(LG_RAYOFGENESIS);
	ADDSKILL2(LG_PIETY);
	ADDSKILL2(LG_EARTHDRIVE);
	ADDSKILL2(LG_HESPERUSLIT);
	ADDSKILL2(LG_INSPIRATION);

	ADDSKILL2(SR_DRAGONCOMBO);
	ADDSKILL2(SR_SKYNETBLOW);
	ADDSKILL2(SR_EARTHSHAKER);
	ADDSKILL2(SR_RAMPAGEBLASTER);
	ADDSKILL2(SR_KNUCKLEARROW);
	ADDSKILL2(SR_FALLENEMPIRE);
	ADDSKILL2(SR_TIGERCANNON);
	ADDSKILL2(SR_GATEOFHELL);
	ADDSKILL2(SR_CRESCENTELBOW);
	ADDSKILL2(SR_CRESCENTELBOW_AUTOSPELL);
	ADDSKILL2(SR_WINDMILL);
	ADDSKILL2(SR_CURSEDCIRCLE);
	ADDSKILL2(SR_LIGHTNINGWALK);
	ADDSKILL2(SR_RAISINGDRAGON);
	ADDSKILL2(SR_HOWLINGOFLION);
	ADDSKILL2(SR_RIDEINLIGHTNING);
	ADDSKILL2(SR_GENTLETOUCH_QUIET);
	ADDSKILL2(SR_GENTLETOUCH_CURE);
	ADDSKILL2(SR_GENTLETOUCH_ENERGYGAIN);
	ADDSKILL2(SR_GENTLETOUCH_CHANGE);
	ADDSKILL2(SR_GENTLETOUCH_REVITALIZE);
//	ADDSKILL2(SR_GENTLETOUCH);
	ADDSKILL2(SR_ASSIMILATEPOWER);
	ADDSKILL2(SR_POWERVELOCITY);

	ADDSKILL2(SO_FIREWALK);
	ADDSKILL2(SO_ELECTRICWALK);
	ADDSKILL2(SO_SPELLFIST);
	ADDSKILL2(SO_PSYCHIC_WAVE);
	ADDSKILL2(SO_CLOUD_KILL);
	ADDSKILL2(SO_POISON_BUSTER);
	ADDSKILL2(SO_STRIKING);
	ADDSKILL2(SO_EARTHGRAVE);
	ADDSKILL2(SO_DIAMONDDUST);
	ADDSKILL2(SO_WARMER);
	ADDSKILL2(SO_VACUUM_EXTREME);
	ADDSKILL2(SO_VARETYR_SPEAR);
	ADDSKILL2(SO_ARRULLO);
	ADDSKILL2(SO_EL_CONTROL);
	ADDSKILL2(SO_SUMMON_AGNI);
	ADDSKILL2(SO_SUMMON_AQUA);
	ADDSKILL2(SO_SUMMON_VENTUS);
	ADDSKILL2(SO_SUMMON_TERA);
	ADDSKILL2(SO_EL_ACTION);
	ADDSKILL2(SO_EL_ANALYSIS);
	ADDSKILL2(SO_EL_SYMPATHY);
	ADDSKILL2(SO_EL_CURE);
	ADDSKILL2(SO_FIRE_INSIGNIA);
	ADDSKILL2(SO_WATER_INSIGNIA);
	ADDSKILL2(SO_WIND_INSIGNIA);
	ADDSKILL2(SO_EARTH_INSIGNIA);






	ADDSKILL2(SYS_FIRSTJOBLV);
	ADDSKILL2(SYS_SECONDJOBLV);






	ADDSKILL2(SC_FATALMENACE);
	ADDSKILL2(SC_REPRODUCE);
	ADDSKILL2(SC_AUTOSHADOWSPELL);
	ADDSKILL2(SC_SHADOWFORM);
	ADDSKILL2(SC_TRIANGLESHOT);
	ADDSKILL2(SC_BODYPAINT);
	ADDSKILL2(SC_INVISIBILITY);
	ADDSKILL2(SC_DEADLYINFECT);
	ADDSKILL2(SC_ENERVATION);
	ADDSKILL2(SC_GROOMY);
	ADDSKILL2(SC_IGNORANCE);
	ADDSKILL2(SC_LAZINESS);
	ADDSKILL2(SC_UNLUCKY);
	ADDSKILL2(SC_WEAKNESS);
	ADDSKILL2(SC_STRIPACCESSARY);
	ADDSKILL2(SC_MANHOLE);
	ADDSKILL2(SC_DIMENSIONDOOR);
	ADDSKILL2(SC_CHAOSPANIC);
	ADDSKILL2(SC_MAELSTROM);
	ADDSKILL2(SC_BLOODYLUST);
	ADDSKILL2(SC_FEINTBOMB);

	ADDSKILL2(WA_SWING_DANCE);
	ADDSKILL2(WA_SYMPHONY_OF_LOVER);
	ADDSKILL2(WA_MOONLIT_SERENADE);

	ADDSKILL2(MI_RUSH_WINDMILL);
	ADDSKILL2(MI_ECHOSONG);
	ADDSKILL2(MI_HARMONIZE);

	ADDSKILL2(WM_LESSON);
	ADDSKILL2(WM_METALICSOUND);
	ADDSKILL2(WM_REVERBERATION);
	ADDSKILL2(WM_REVERBERATION_MELEE);
	ADDSKILL2(WM_REVERBERATION_MAGIC);
	ADDSKILL2(WM_DOMINION_IMPULSE);
	ADDSKILL2(WM_SEVERE_RAINSTORM);
	ADDSKILL2(WM_SEVERE_RAINSTORM_MELEE);
	ADDSKILL2(WM_POEMOFNETHERWORLD);
	ADDSKILL2(WM_VOICEOFSIREN);
	ADDSKILL2(WM_DEADHILLHERE);
	ADDSKILL2(WM_LULLABY_DEEPSLEEP);
	ADDSKILL2(WM_SIRCLEOFNATURE);
	ADDSKILL2(WM_RANDOMIZESPELL);
	ADDSKILL2(WM_GLOOMYDAY);
	//
	ADDSKILL2(WM_GREAT_ECHO);
	ADDSKILL2(WM_SONG_OF_MANA);
	ADDSKILL2(WM_DANCE_WITH_WUG);
	ADDSKILL2(WM_SOUND_OF_DESTRUCTION);
	ADDSKILL2(WM_SATURDAY_NIGHT_FEVER);
	ADDSKILL2(WM_LERADS_DEW);
	ADDSKILL2(WM_MELODYOFSINK);
	ADDSKILL2(WM_BEYOND_OF_WARCRY);
	ADDSKILL2(WM_UNLIMITED_HUMMING_VOICE);

	ADDSKILL2(GN_TRAINING_SWORD);
	ADDSKILL2(GN_REMODELING_CART);
	ADDSKILL2(GN_CART_TORNADO);
	ADDSKILL2(GN_CARTCANNON);
	ADDSKILL2(GN_CARTBOOST);
	ADDSKILL2(GN_THORNS_TRAP);
	ADDSKILL2(GN_BLOOD_SUCKER);
	ADDSKILL2(GN_SPORE_EXPLOSION);
	ADDSKILL2(GN_WALLOFTHORN);
	ADDSKILL2(GN_CRAZYWEED);
	ADDSKILL2(GN_CRAZYWEED_ATK);
	ADDSKILL2(GN_DEMONIC_FIRE);
	ADDSKILL2(GN_FIRE_EXPANSION);
	ADDSKILL2(GN_FIRE_EXPANSION_SMOKE_POWDER);
	ADDSKILL2(GN_FIRE_EXPANSION_TEAR_GAS);
	ADDSKILL2(GN_FIRE_EXPANSION_ACID);
	ADDSKILL2(GN_HELLS_PLANT);
	ADDSKILL2(GN_HELLS_PLANT_ATK);
	ADDSKILL2(GN_MANDRAGORA);
	ADDSKILL2(GN_SLINGITEM);
	ADDSKILL2(GN_SLINGITEM_RANGEMELEEATK);
	ADDSKILL2(GN_CHANGEMATERIAL);
	ADDSKILL2(GN_MIX_COOKING);
	ADDSKILL2(GN_MAKEBOMB);
	ADDSKILL2(GN_S_PHARMACY);



	ADDSKILL2(NPC_ASSASSINCROSS);
	ADDSKILL2(NPC_DISSONANCE);
	ADDSKILL2(NPC_UGLYDANCE);



	this->CSkillTypeBaseInfo::InitGDSkill();
	this->CSkillTypeBaseInfo::InitHomunSkill();
	this->CSkillTypeBaseInfo::InitMercenarySkill();
	this->CSkillTypeBaseInfo::InitElementalSkill();
*/
}


hook_func<void (__stdcall *)()> CSkillTypeBaseInfo__InitGDSkill(EXEPATH(), "CSkillTypeBaseInfo::InitGDSkill");
void CSkillTypeBaseInfo::InitGDSkill()
{
	return (CSkillTypeBaseInfo__InitGDSkill)();
	//TODO
/*
	ADDSKILL(GD_APPROVAL);
	ADDSKILL(GD_KAFRACONTRACT);
	ADDSKILL(GD_GUARDRESEARCH);
	ADDSKILL(GD_GUARDUP);
	ADDSKILL(GD_EXTENSION);
//	ADDSKILL(GD_GLORYGUILD);
	ADDSKILL(GD_LEADERSHIP);
	ADDSKILL(GD_GLORYWOUNDS);
	ADDSKILL(GD_SOULCOLD);
	ADDSKILL(GD_HAWKEYES);
	ADDSKILL(GD_BATTLEORDER);
	ADDSKILL(GD_REGENERATION);
	ADDSKILL(GD_RESTORE);
	ADDSKILL(GD_EMERGENCYCALL);
	ADDSKILL(GD_DEVELOPMENT);
	ADDSKILL(GD_ITEMEMERGENCYCALL);
//	ADDSKILL(GD_GUILD_STORAGE);
*/
}


hook_func<void (__stdcall *)()> CSkillTypeBaseInfo__InitHomunSkill(EXEPATH(), "CSkillTypeBaseInfo::InitHomunSkill");
void CSkillTypeBaseInfo::InitHomunSkill()
{
	return (CSkillTypeBaseInfo__InitHomunSkill)();
	//TODO
/*
	ADDSKILL(HLIF_HEAL);
	ADDSKILL(HLIF_AVOID);
	ADDSKILL(HLIF_BRAIN);
	ADDSKILL(HLIF_CHANGE);
	
	ADDSKILL(HAMI_CASTLE);
	ADDSKILL(HAMI_DEFENCE);
	ADDSKILL(HAMI_SKIN);
	ADDSKILL(HAMI_BLOODLUST);
	
	ADDSKILL(HFLI_MOON);
	ADDSKILL(HFLI_FLEET);
	ADDSKILL(HFLI_SPEED);
	ADDSKILL(HFLI_SBR44);
	
	ADDSKILL(HVAN_CAPRICE);
	ADDSKILL(HVAN_CHAOTIC);
	ADDSKILL(HVAN_INSTRUCT);
	ADDSKILL(HVAN_EXPLOSION);

	ADDSKILL2(MUTATION_BASEJOB);
	ADDSKILL2(MH_SUMMON_LEGION);
	ADDSKILL2(MH_NEEDLE_OF_PARALYZE);
	ADDSKILL2(MH_POISON_MIST);
	ADDSKILL2(MH_PAIN_KILLER);
	ADDSKILL2(MH_LIGHT_OF_REGENE);
	ADDSKILL2(MH_OVERED_BOOST);
	ADDSKILL2(MH_ERASER_CUTTER);
	ADDSKILL2(MH_XENO_SLASHER);
	ADDSKILL2(MH_SILENT_BREEZE);
	ADDSKILL2(MH_STYLE_CHANGE);
	ADDSKILL2(MH_SONIC_CLAW);
	ADDSKILL2(MH_SILVERVEIN_RUSH);
	ADDSKILL2(MH_MIDNIGHT_FRENZY);
	ADDSKILL2(MH_STAHL_HORN);
	ADDSKILL2(MH_GOLDENE_FERSE);
	ADDSKILL2(MH_STEINWAND);
	ADDSKILL2(MH_HEILIGE_STANGE);
	ADDSKILL2(MH_ANGRIFFS_MODUS);
	ADDSKILL2(MH_TINDER_BREAKER);
	ADDSKILL2(MH_CBC);
	ADDSKILL2(MH_EQC);
	ADDSKILL2(MH_MAGMA_FLOW);
	ADDSKILL2(MH_GRANITIC_ARMOR);
	ADDSKILL2(MH_LAVA_SLIDE);
	ADDSKILL2(MH_PYROCLASTIC);
	ADDSKILL2(MH_VOLCANIC_ASH);
*/
}


hook_func<void (__stdcall *)()> CSkillTypeBaseInfo__InitElementalSkill(EXEPATH(), "CSkillTypeBaseInfo::InitElementalSkill");
void CSkillTypeBaseInfo::InitElementalSkill()
{
	return (CSkillTypeBaseInfo__InitElementalSkill)();
	//TODO
/*
	ADDSKILL2(EL_CIRCLE_OF_FIRE);
	ADDSKILL2(EL_FIRE_CLOAK);
	ADDSKILL2(EL_FIRE_MANTLE);
	ADDSKILL2(EL_WATER_SCREEN);
	ADDSKILL2(EL_WATER_DROP);
	ADDSKILL2(EL_WATER_BARRIER);
	ADDSKILL2(EL_WIND_STEP);
	ADDSKILL2(EL_WIND_CURTAIN);
	ADDSKILL2(EL_ZEPHYR);
	ADDSKILL2(EL_SOLID_SKIN);
	ADDSKILL2(EL_STONE_SHIELD);
	ADDSKILL2(EL_POWER_OF_GAIA);
	ADDSKILL2(EL_PYROTECHNIC);
	ADDSKILL2(EL_HEATER);
	ADDSKILL2(EL_TROPIC);
	ADDSKILL2(EL_AQUAPLAY);
	ADDSKILL2(EL_COOLER);
	ADDSKILL2(EL_CHILLY_AIR);
	ADDSKILL2(EL_GUST);
	ADDSKILL2(EL_BLAST);
	ADDSKILL2(EL_WILD_STORM);
	ADDSKILL2(EL_PETROLOGY);
	ADDSKILL2(EL_CURSED_SOIL);
	ADDSKILL2(EL_UPHEAVAL);
	ADDSKILL2(EL_FIRE_ARROW);
	ADDSKILL2(EL_FIRE_BOMB);
	ADDSKILL2(EL_FIRE_BOMB_ATK);
	ADDSKILL2(EL_FIRE_WAVE);
	ADDSKILL2(EL_FIRE_WAVE_ATK);
	ADDSKILL2(EL_ICE_NEEDLE);
	ADDSKILL2(EL_WATER_SCREW);
	ADDSKILL2(EL_WATER_SCREW_ATK);
	ADDSKILL2(EL_TIDAL_WEAPON);
	ADDSKILL2(EL_WIND_SLASH);
	ADDSKILL2(EL_HURRICANE);
	ADDSKILL2(EL_HURRICANE_ATK);
	ADDSKILL2(EL_TYPOON_MIS);
	ADDSKILL2(EL_TYPOON_MIS_ATK);
	ADDSKILL2(EL_STONE_HAMMER);
	ADDSKILL2(EL_ROCK_CRUSHER);
	ADDSKILL2(EL_ROCK_CRUSHER_ATK);
	ADDSKILL2(EL_STONE_RAIN);
*/
}


hook_func<void (__stdcall *)()> CSkillTypeBaseInfo__InitMercenarySkill(EXEPATH(), "CSkillTypeBaseInfo::InitMercenarySkill");
void CSkillTypeBaseInfo::InitMercenarySkill()
{
	return (CSkillTypeBaseInfo__InitMercenarySkill)();
	//TODO
/*
	ADDSKILL(MS_BASH);
	ADDSKILL(MS_MAGNUM);
	ADDSKILL(MS_REFLECTSHIELD);
	ADDSKILL(MS_BOWLINGBASH);
	ADDSKILL(MS_PARRYING);
	ADDSKILL(MS_BERSERK);
	ADDSKILL(ML_DEFENDER);
	ADDSKILL(ML_DEVOTION);
	ADDSKILL(MER_MAGNIFICAT);
	ADDSKILL(MER_AUTOBERSERK);

	ADDSKILL(MA_DOUBLE);
	ADDSKILL(MA_SHOWER);
	ADDSKILL(MA_SKIDTRAP);
	ADDSKILL(MA_SANDMAN);
	ADDSKILL(MA_FREEZINGTRAP);
	ADDSKILL(MA_CHARGEARROW);
	ADDSKILL(MA_SHARPSHOOTING);
	ADDSKILL(MA_LANDMINE);
	ADDSKILL(MA_REMOVETRAP);

	ADDSKILL(ML_PIERCE);
	ADDSKILL(ML_BRANDISH);
	ADDSKILL(ML_SPIRALPIERCE);
	ADDSKILL(ML_AUTOGUARD);

	ADDSKILL(MER_QUICKEN);
	ADDSKILL(MER_SIGHT);
	ADDSKILL(MER_PROVOKE);
	ADDSKILL(MER_DECAGI);
	ADDSKILL(MER_LEXDIVINA);
	ADDSKILL(MER_ESTIMATION);

	ADDSKILL(MER_KYRIE);
	ADDSKILL(MER_BLESSING);
	ADDSKILL(MER_INCAGI);
*/
}


#undef ADDSKILL
#undef ADDSKILL2


void CSkillTypeBaseInfo::ClearSKTypeBase()
{
}


BOOL CSkillTypeBaseInfo::SaveToFile(const char* fileName)
{
	FILE* fp = fopen(fileName, "wt");
	if( fp == NULL )
		return FALSE;

	for( std::map<std::string,unsigned short>::iterator iter = m_skillName.begin(); iter != m_skillName.end(); ++iter )
		fprintf(fp, "%s %d\n", iter->first.c_str(), iter->second);

	fclose(fp);
	return TRUE;
}
